
#ifndef _DOMAIN_
#define _DOMAIN_

#include "boundary.h"
#include <list>
using namespace std;

class Face;
class Attribute;

class Domain
{
public:
  Domain( Face* _face );
  void getBoundaries( list<Boundary*>& bound );
  bool isSelected();
  void cleanMesh();
  void generateMesh();
  vector<vector<int> > getTrianglesIncidences() {return m_conn;};
  vector<Point> getTrianglesPoints() {return m_pts;};
  void setAttribute( Attribute* _attribute ) {m_attribute = _attribute;};
  Attribute* getAttribute() {return m_attribute;};
  void getCenter( double& xc, double& yc );	
protected:
private:
  Face* m_face;
  Attribute* m_attribute;
  list<Boundary*> m_bounds;
  // mesh data
  vector<Point> m_pts;
  vector<vector<int> > m_conn;

};


#endif
